package the.broccoli.uc.service;

import org.wisteria.framework.web.QueryResult;
import org.wisteria.framework.web.mvc.service.ISuperService;
import the.broccoli.uc.entity.User;
import the.broccoli.uc.vo.UserVO;

/**
 * <p>
 * 用户 服务类
 * </p>
 *
 * @author lei.liu
 * @since 2018-10-12
 */
public interface IUserService extends ISuperService<User> {

    /**
     * 新增用户
     *
     * @param account      账号
     * @param userName     用户名
     * @param phone        手机号码
     * @param email        邮箱
     * @param operatorId   操作人ID
     * @param operatorName 操作人名称
     * @param tenantId     租户ID
     * @return
     */
    boolean save(String account, String userName, String phone, String email, String operatorId, String operatorName, String tenantId);

    /**
     * 修改用户
     *
     * @param userId       用户ID
     * @param account      账号
     * @param userName     用户名
     * @param phone        手机号码
     * @param email        邮箱
     * @param operatorName 操作人ID
     * @param operatorName 操作人名称
     * @return
     */
    boolean update(String userId, String account, String userName, String phone, String email, String operatorId, String operatorName);

    /**
     * 通过登录账号，手机号码，邮箱地址。获取用户信息
     *
     * @param loginAccount 登录账号、手机号码、邮箱地址
     * @return 用户信息
     */
    User getByAccount(String loginAccount);

    /**
     * 分页查询
     *
     * @param vo        查询条件
     * @param pageNum   页码
     * @param pageSize  每页记录大小
     * @return 查询结果列表
     */
    QueryResult<UserVO> selectPageVO(UserVO vo, int pageNum, int pageSize);

}
